Domain Theory for Modeling OOP: A Summary (Domain Theory for The Construction of NOOP, and The Construction of COOP as a Step Towards Constructing NOOP)

ثبت نشده
چکیده

Domain theory is ‘a mathematical theory that serves as a foundation for the semantics of programming languages’ [AJ94]. Domains form the basis of a theory of partial information, which extends the familiar notion of partial function to encompass a whole spectrum of “degrees of definedness”, so as to model incremental higher-order computation (i.e., computing with infinite data values, such as functions defined over an infinite domain like the domain of integers, infinite trees, and such as objects of object-oriented programming). General considerations from recursion theory dictate that partial functions are unavoidable in any discussion of computability. Domain theory provides an appropriately abstract setting in which the notion of a partial function can be lifted and used to give meaning to higher types, recursive types, etc. NOOP is a domain-theoretic model of nominally-typed OOP [Abd12, Abd13, Abd14, CA13, AC14]. NOOP was used to prove the identification of inheritance and subtyping in mainstream nominally-typed OO programming languages and the validity of this identification. In this report we first present the definitions of basic domain theoretic notions and domain constructors used in the construction of NOOP, then we present the construction of a simple structural model of OOP called COOP as a step towards the construction of NOOP. Like the construction of NOOP, the construction of COOP uses earlier presented domain constructors. Objects of OOP are typically infinite data values because they are usually recursivelydefined via their definitions using the special self-referential variables “this” or “self”.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Domain Theory for Modeling OOP: A Summary (Domain Theory for The Construction of NOOP, and The Construction of COOP as a Step Towards Constructing NOOP)

Domain theory is ‘a mathematical theory that serves as a foundation for the semantics of programming languages’ [AJ94]. Domains form the basis of a theory of partial information, which extends the familiar notion of partial function to encompass a whole spectrum of “degrees of definedness”, so as to model incremental higher-order computation (i.e., computing with infinite data values, such as f...

متن کامل

NOOP: A Domain-Theoretic Model of Nominally-Typed OOP

The majority of industrial-strength object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss, however, a crucial feature of these mainstream OO languages: nominality. This paper presents the construction of NOOP as the first domain-theoretic model of OOP that includes full class/type ...

متن کامل

A Comparison of NOOP to Structural Domain-Theoretic Models of Object-Oriented Programming

Mainstream object-oriented programming (OOP) languages such as Java, C#, C++ and Scala are all almost entirely nominally-typed. NOOP is a recently developed domain-theoretic model of OOP that was designed to fully include nominal information found in nominally-typed OOP. This paper compares NOOP to the most widely known domain-theoretic models of OOP, namely, the models developed by Cardelli an...

متن کامل

A Domain-Theoretic Model Of Nominally-Typed Object-Oriented Programming

The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial features of these mainstream OO languages, such as nominality. This paper summarizes the construction of NOOP as a domain-theoretic model of OOP that includes nominal information f...

متن کامل

On Understanding Generics

One important value behind developing and presenting NOOP [2, 3, 4, 12, 6, 5, 7, 9, 8], is to provide a more precise foundation on which further OOP research can be built. NOOP provides a capacity for better mathematical reasoning about mainstream OO languages. The development of NOOP was mainly motivated by the lack of a precise model of OOP despite the prominence and domination of OOP among m...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014